package com.zhijian.medical.entity.vo.request;

import com.zhijian.medical.entity.po.AssessmentDetail;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * 考核主表新增or修改类
 *
 * @author HCG
 * @version 1.0
 * @date 2023-01-17
 */
@Data
@Api(tags = "考核主表新增or修改类")
@NoArgsConstructor
@AllArgsConstructor
public class AssessmentSaveOrUpdateVo extends AssessmentDetail implements Serializable {

    private static final long serialVersionUID = 4964737904413309602L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id", hidden = true)
    private Long id;

    /**
     * 名称
     */
    @ApiModelProperty("名称")
    @NotBlank(message = "名称不能为空")
    private String name;

    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间")
    @NotBlank(message = "开始时间不能为空")
    private String startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty("结束时间")
    @NotBlank(message = "结束时间不能为空")
    private String endTime;

    /**
     * 考生id集合
     */
    @ApiModelProperty("考生id集合")
//    @NotNull(message = "考生不能为空")
//    @Size(min = 1, message = "考生数据至少为一条")
    private List<Long> doPersonIds;

    /**
     * 阅卷人id集合
     */
    @ApiModelProperty("阅卷人id集合")
    @NotNull(message = "阅卷人不能为空")
    @Size(min = 1, message = "阅卷人数据至少为一条")
    private List<Long> reviewerIds;

    /**
     * 题库id
     */
    @ApiModelProperty("题库id")
    private Long examWarehouseId;

    /**
     * 切片类型数组
     */
    @ApiModelProperty("切片类型数组")
    private List<String> digitalSliceCaseTypeList;

    /**
     * 合格线
     */
    @ApiModelProperty("合格线")
    @NotNull(message = "合格线不能为空")
    @Min(value = 1, message = "合格线最小为1")
    private Integer acceptanceLine;

    /**
     * 学习模块id数组
     */
    @ApiModelProperty("学习模块id数组")
    private List<Long> studyId;

    /**
     * 人员类型，0：在职员工，1：规培生，2：进修生，3：研究生
     */
    @ApiModelProperty("人员类型，0：在职员工，1：规培生，2：进修生，3：研究生")
    private Byte userType;

    /**
     * 学习班ID
     */
    @ApiModelProperty("学习班ID")
    private Long studyClassId;

    /**
     * 切片库标签id数组
     */
    @ApiModelProperty("切片库标签id数组")
    private List<Long> groupIdList;

}
